//Problem Id:1016  User Id:tq 
//Memory:24K  Time:15MS
//Language:C++  Result:Accepted

/*	author: TangQiao @ Wind 
	problem name: Matrix Chain Multiplication
	source : ULM 1996

	problem type: 数据结构 简单题
	problem description: 给出各个矩阵的长宽,再给出一系列的表达式,让你判断表达式的合法性并且求出在计算此表达式的
			     过程中一共乘了多少次.
	problem solution: 很显然是用数据结构的栈的操作.遇到字符就进栈,遇到 '(' 不处理,遇到 ')' 则出栈两个矩阵并运算,
			  并把运算结果放入栈中.
			  	
	another solution: 此题也可以用二叉树来实现.
	date : 2005.5.20 北师大校队个人选拨赛2
	
*/

#include <stdio.h>
#include <string.h>

struct tttype
{
	int a,b;
}mm[30],st[1000],p,q;

int stn;
int n;
int tot;

void init()
{
	int i,j;
	int aa,bb;
	char ch[5];
	scanf("%d", &n);
	tot=0;
	for (i=1;i<=n;i++)
	{
		scanf("%s %d %d",ch, &aa, &bb);
		j=ch[0]-'A';
		mm[j].a=aa;
		mm[j].b=bb;
	}
}

void doit(char *ss)
{
	int len;
	int i,j;
	char ch;	
	
	len=strlen(ss);
	if (len==1)
	{
		printf("0\n");
		return;
	}

	stn=0;	

	for (i=0;i<len;i++)
	{
		ch=ss[i];
		if (ch>='A' && ch<='Z')
		{
			j=ch-'A';
			stn++;
			st[stn]=mm[j];		
		}
		else if (ch==')')
		{
			q=st[stn];
			stn--;
			if (stn<=0)
			{
				printf("error\n");
				return;
			}
			p=st[stn];
			if (p.b!=q.a)
			{
				printf("error\n");
				return;
			}
			else
			{
				tot+=p.a*p.b*q.b;
				p.b=q.b;
				st[stn]=p;
			}
		}
	}//end of for 
	printf("%d\n",tot);
}

main()
{
	char ss[1000];
	init();
	while (scanf("%s",ss)!=EOF)
	{
		tot=0;
		doit(ss);
	}

	return 0;
}

